﻿<?xml version="1.0" encoding="utf-8" ?>

<exceptionHelper>
    <exceptionGroup type="Kent.Boogaart.KBCsv.HeaderRecord">
        <exception key="duplicateValue" type="System.InvalidOperationException">
            A column named '{0}' appears more than once in the header record.
        </exception>
        <exception key="columnNotFound" type="System.ArgumentException">
            No column named '{0}' was found in the header record.
        </exception>
    </exceptionGroup>

    <exceptionGroup type="Kent.Boogaart.KBCsv.DataRecord">
        <exception key="noHeader" type="System.InvalidOperationException">
            No header record is associated with this DataRecord.
        </exception>
    </exceptionGroup>

    <exceptionGroup type="Kent.Boogaart.KBCsv.CsvReader">
        <exception key="disposed" type="System.ObjectDisposedException"/>
        <exception key="passedFirstRecord" type="System.InvalidOperationException">
            The CsvReader has already passed the first record, so this operation is not permitted.
        </exception>
    </exceptionGroup>

    <exceptionGroup type="Kent.Boogaart.KBCsv.CsvWriter">
        <exception key="disposed" type="System.ObjectDisposedException"/>
        <exception key="valueSeparatorAndDelimiterCannotMatch" type="System.ArgumentException">
            Value separator and delimiter cannot be the same.
        </exception>
        <exception key="valueDelimiterRequiredIfForceDelimitIsTrue" type="System.ArgumentException">
            Value delimiter cannot be null when ForceDelimit is true.
        </exception>
        <exception key="invalidOffset" type="System.ArgumentException">
            Invalid offset.
        </exception>
        <exception key="invalidLength" type="System.ArgumentException">
            Invalid length.
        </exception>
        <exception key="recordNull" type="System.ArgumentException">
            Records within the buffer cannot be null.
        </exception>
        <exception key="valueRequiresDelimiting" type="System.InvalidOperationException">
            A value requires delimiting in order to be valid CSV, but no value delimiter has been set. The value is: {0}
        </exception>
    </exceptionGroup>

    <exceptionGroup type="Kent.Boogaart.KBCsv.Internal.CsvParser">
        <exception key="valueSeparatorAndDelimiterCannotMatch" type="System.ArgumentException">
            Value separator and delimiter cannot be the same.
        </exception>
    </exceptionGroup>
</exceptionHelper>